{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![img](https://im3.ezgif.com/tmp/ezgif-3-56309e4f9e.gif)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### I. Built in Function - Các hàm đã được dựng sẵn\n",
    "\n",
    "Tham khảo các hàm dựng sẵn đầy đủ của Python 2 tại <a href=\"https://docs.python.org/2.7/library/functions.html\">2. Built-in Functions</a>\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. Hàm print()\n",
    "Hàm này để sử dụng in một đối tượng ra console của bạn."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tôi muốn học ML trong 2 tuần\n"
     ]
    }
   ],
   "source": [
    "print \"Tôi muốn học ML trong 2 tuần\" "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tên tôi là Ngoc và tôi 18 tuổi \n"
     ]
    }
   ],
   "source": [
    "# Cách sử dụng số 1\n",
    "name = \"Ngoc\"\n",
    "age = 18\n",
    "print \"Tên tôi là %s và tôi %s tuổi \" % (name, age)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Avatar được phát hành bởi hãng 20th Century Fox\n"
     ]
    }
   ],
   "source": [
    "# Cách sử dụng số 2\n",
    "brand = \"20th Century Fox\"\n",
    "filmName = \"Avatar\"\n",
    "\n",
    "print \"{0} được phát hành bởi hãng {1}\".format(filmName, brand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. Hàm type()\n",
    "\n",
    "Hàm trả về dạng của một đối tượng"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "int"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = 3\n",
    "type(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "str"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name = \"Nguyen Ba Ngoc\"\n",
    "type(name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "person = {\"name\": \"Nguyen Ba Ngoc\", \"title\": \"Software Engineer\"}\n",
    "type(person)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "list"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "days = [\"Monday\", \"Tuesday\", \"Thursday\"]\n",
    "type(days)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3. Hàm abs()\n",
    "Hàm trả về giá trị tuyệt đối"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z = -20\n",
    "abs(z)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4. Hàm all()\n",
    "Hàm trả về `True` nếu tất cả các phần tử trong `iterable` là `True`. List là một điển hình cho `iterable`, tôi sẽ nhắc đến khái niệm này sau."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "isHandsome = True\n",
    "isManly = True\n",
    "me = [isHandsome, isManly]\n",
    "all(me)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 5. Hàm len()\n",
    "Hàm trả về chiều dài hoặc số lượng phần tử của một đối tượng. Đầu vào có thể là: \n",
    "    - Dạng Sequence như string, bytes, tuple, list hoặc range\n",
    "    - Dạng Collection như dictionary, set hoặc frozen set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về chiều dài của chuỗi\n",
    "organizer = \"GDG Hanoi\"\n",
    "len(organizer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về số phần tử trong một List\n",
    "languages = [\"Vietnamese\", \"English\"]\n",
    "len(languages)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về số lượng thuộc tính của một đối tượng\n",
    "community = {\"name\": \"GDG Hanoi\", \"developers\": 60000}\n",
    "len(community)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6. Hàm max()\n",
    "Hàm trả về giá trị lớn nhất\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về giá trị lớn nhất của một dãy số\n",
    "max(1,2,4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về giá trị của phần tử lớn nhất trong một List\n",
    "max([1, 20, 18])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 7. Hàm min()\n",
    "Hàm trả về giá trị nhỏ nhất\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Trả về giá trị nhỏ nhất của một dãy số\n",
    "min(2, 5, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# # Trả về giá trị của phần tử nhỏ nhất trong một List\n",
    "min([3,10,5])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 8. Hàm str()\n",
    "Hàm chuyển một đối tượng nhất định chuỗi\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Vingroup = {\"name\": \"Vingroup\", \"subsidiaries\": [\"VinHome\", \"VinMart\"]}\n",
    "\n",
    "type(Vingroup)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "str"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "VinGroupToString = str(Vingroup)\n",
    "\n",
    "type(VinGroupToString)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 9. Hàm raw_input()\n",
    "\n",
    "Hàm đọc dữ liệu nhập từ bàn phím\n",
    "\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "What is your name?Ngoc\n",
      "Hi Ngoc\n"
     ]
    }
   ],
   "source": [
    "name = raw_input(\"What is your name?\")\n",
    "\n",
    "print \"Hi %s\"%name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
